package done.easy_901_1000;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

/**
 * 929. Unique Email Addresses 独特的电子邮件地址
 * <p>
 * 每封电子邮件都由一个本地名称和一个域名组成，以 @ 符号分隔。
 * 例如，在 alice@leetcode.com中， alice 是本地名称，而 leetcode.com 是域名。
 * 除了小写字母，这些电子邮件还可能包含 '.' 或 '+'。
 * 如果在电子邮件地址的本地名称部分中的某些字符之间添加句点（'.'），
 * 则发往那里的邮件将会转发到本地名称中没有点的同一地址。例如，
 * "alice.z@leetcode.com” 和 “alicez@leetcode.com” 会转发到同
 * 一电子邮件地址。 （请注意，此规则不适用于域名。）
 * 如果在本地名称中添加加号（'+'），则会忽略第一个加号后面的所有内容。
 * 这允许过滤某些电子邮件，例如 m.y+name@email.com 将转发到 my@email.com。
 * （同样，此规则不适用于域名。）
 * <p>
 * 示例：
 * 输入：[
 * "test.email+alex@leetcode.com",
 * "test.e.mail+bob.cathy@leetcode.com",
 * "testemail+david@lee.tcode.com"
 * ]
 * 输出：2
 * 解释：
 * 实际收到邮件的是
 * "testemail@leetcode.com" 和 "testemail@lee.tcode.com"。
 *
 * @author 大硕
 * 2019-04-03 7:44 AM
 **/
@Slf4j
public class UniqueEmailAddresses {

    @SuppressWarnings("all")
    public int numUniqueEmails(String[] emails) {
        // 190403 first
        return -1;
    }

    @Test
    public void test() {
        String[] emails = new String[]{"test.email+alex@leetcode.com",
                "test.e.mail+bob.cathy@leetcode.com",
                "testemail+david@lee.tcode.com"};
        log.info("{}", numUniqueEmails(emails));
    }
}

































/*
public int numUniqueEmails(String[] emails) {

    Set<String> sets = new HashSet<>();

    for (String email : emails) {

        // 先通过@分隔字符串 xxxxx@xxxxx
        String[] split = email.split("@");

        // 替换所有的 "." 为 ""
        split[0] = split[0].replaceAll("\\.", "");

        //第一部分通过 + 分隔
        String[] split1 = split[0].split("\\+");

        // + 前的部分和 @后的部分才是不重复的邮箱地址
        // 如果重复了就不放入set中
        sets.add(split[1] + split1[0]);
    }
    return sets.size();
}
*/
